<?php
class Request{

    /**
     * 获取请求方式
     * @return string
     */
    public static function method():string
    {
        return $_SERVER['REQUEST_METHOD'];
    }


    /**
     * 获取请求参数
     * @param $key
     * @return mixed|null
     */
    public static function get($key)
    {
        if (self::isPost()){
            return @$_POST[$key] ?? (@$_GET[$key] ?? null);
        }else{
            return @$_GET[$key] ?? (@$_POST[$key] ?? null);
        }
    }


    /**
     * 判断请求参数是否存在
     * @param array $arr 数组
     * @param array $keys 键名
     * @return ?string 返回不存在的键名
     */
    public static function has(array $arr ,...$keys):?string
    {
        foreach ($keys as $key) {
            if (!isset($arr[$key])) {
                return $key;
            }
        }
        return null;
    }

    public static function isPost():bool
    {
        return self::method() === 'POST';
    }

}